// import QtQuick 1.0 // to target S60 5th Edition or Maemo 5
import QtQuick 1.1
import com.nokia.symbian 1.1
import Qt.labs.components 1.1
import "detalheUsuario.js" as DetalheUsuarioScript
import "denunciaFinal.js" as Denuncia
import Basicos 1.0

Item {    
    id: root
    objectName: "paginaPrincipalUsuario"

    property bool continuar: false    

    signal finalizado()

    onContinuarChanged: {
        if (continuar)
            DetalheUsuarioScript.montarTelas();
    }

    Component.onCompleted: {
        DetalheUsuarioScript.parentPadrao = root;
    }

    Timer {
        id: timerCheck
        interval: 200
        running: true;
        triggeredOnStart: true
        repeat: true
        onTriggered: {
            if (DetalheUsuarioScript.dadinhos != null)
            {
                running = false;
                continuar = true;
            }
        }
    }

    Item {
        id: opcoes
        anchors { left: parent.left; top: parent.top; right: parent.right; bottom: parent.bottom }
        state: "VISIVEL"

        property bool opcoesVisiveis : true

        onOpcoesVisiveisChanged: {
            opcoes.state = (opcoesVisiveis ? "VISIVEL" : "INVISIVEL");
        }

        Column {
            id: lstBotoesMenu
            anchors { left: parent.left; top: parent.top; right: parent.right }
            spacing: 5

            Component {
                id: compBotao

                BotaoMaroto {
                    corFundo: "white"
                    corTexto: "black"
                    corFundoClicado: "red"
                }
            }

            function novoBotao(nome)
            {                
                var obj = compBotao.createObject(lstBotoesMenu);
                obj.idBotao = lstBotoesMenu.children.length - 1;
                obj.texto = nome;
                obj.anchors.left = lstBotoesMenu.left;
                obj.anchors.right = lstBotoesMenu.right;
                obj.clique.connect(function(idBotao) {
                                       opcoes.opcoesVisiveis = false;                                       
                                       usuLst.idTelaAtivo = idBotao;
                                   });
                return obj;
            }

        }

        states: [
            State {
                name: "VISIVEL"
                AnchorChanges {
                    target: opcoes
                    anchors.right: root.right
                }
            },
            State {
                name: "INVISIVEL"
                AnchorChanges {
                    target: opcoes
                    anchors.right: root.left
                }
            }
        ]
        transitions: [
            Transition {
                from: "VISIVEL"
                to: "INVISIVEL"
                reversible: true
                SequentialAnimation {
                    AnchorAnimation {
                        duration: 150
                    }
                    ScriptAction {
                        script: {
                            usuLst.calcularLargura();
                        }
                    }
                }
            }
        ]
    }

    Component {
        id: compTela

        InfoAnimadoBackground {
            id: infoBack
            width: usuLst.width;            
            mostraConteudoDepois: true

            property Item botaoAtrelado
            property alias containerPadrao : colItens;
            objectName: "compTela"

            CheckableGroup { id: grupoExclusivo }            

            function adicionarNovosItens(texto, selecionado, desabilitar, desconsiderar)
            {
                var comp = Qt.createComponent("RadioButtonMarretado.qml");
                var obj = comp.createObject(colItens);
                obj.text = texto;
                obj.desconsiderar = desconsiderar
                obj.desabilitar = desabilitar;
                obj.platformExclusiveGroup = grupoExclusivo;
                obj.checked = selecionado;
                return obj;
            }

            Column {
                id: colItens
                width: parent.width
                spacing: 5
            }
        }
    }

    function adicionarNovaPagina(nome)
    {
        var objBotao = lstBotoesMenu.novoBotao(nome);
        var obj = compTela.createObject(rowLst);
        obj.textoInfo = nome;
        obj.animacaoFinalizada.connect(function(fim)
                                       {
                                           usuLst.telaPronta = fim;
                                       });
        obj.botaoAtrelado = objBotao;
        return obj;
    }

    Flickable {
        id: usuLst
        width: parent.width
        anchors { left: opcoes.right; top: parent.top; bottom: parent.bottom; bottomMargin: 60 }
        contentWidth: rowLst.width
        clip: true
        flickableDirection: Flickable.VerticalFlick

        onXChanged: {
            if (usuLst.x > 0)
            {
                rowLst.opacity = 0;
            }
            else if (usuLst.x == 0)
            {
                rowLst.opacity = 1;
            }
        }

        property int idTelaAtivo : -1
        property bool telaPronta: false

        onIdTelaAtivoChanged: {
            if (idTelaAtivo > -1)
            {
                var tela = rowLst.children[idTelaAtivo];
                usuLst.contentHeight = tela.height;
                usuLst.contentY = 0;
                tela.preparar();
            }
            else
                usuLst.contentHeight = rowLst.height
        }

        function calcularLargura()
        {
            var totalWidth = idTelaAtivo * (usuLst.width + rowLst.spacing);
            usuLst.contentX = totalWidth;
        }

        Row {
            id: rowLst
            spacing: 5
            Behavior on opacity {
                SequentialAnimation {
                    NumberAnimation {
                        duration: 100
                    }
                    ScriptAction {
                        script: {
                            if (usuLst.idTelaAtivo > -1 && rowLst.opacity == 1)
                            {
                                var tela = rowLst.children[usuLst.idTelaAtivo];
                                tela.iniciar();
                            }
                        }
                    }
                }
            }
        }
    }

    Item {
        anchors { left: parent.left; top: usuLst.bottom; right: parent.right; bottom: parent.bottom }

        Row {
            anchors.centerIn: parent;

            BotaoMaroto {
                width: 180
                corFundo: "white"
                corTexto: "black"
                corFundoClicado: "red"
                texto: "Voltar"
                visible: !opcoes.opcoesVisiveis
                enabled: usuLst.telaPronta
                onClique: {
                    opcoes.opcoesVisiveis = true;
                }
            }

            BotaoMaroto {
                width: 180
                corFundo: "white"
                corTexto: "black"
                corFundoClicado: "red"
                texto: "Continuar"                
                visible: opcoes.opcoesVisiveis
                onClique: {
                    root.finalizado();
                }
            }
        }
    }

    onWidthChanged: {
        usuLst.calcularLargura();
    }
}
